home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Disk User Volume 3 #11
/
Commodore_Disk_User_Vol.3_11_1990_-.d64
/
parser main
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2022-10-26
|
2KB
|
61 lines
6000 print"[147]"
6010 poke53280,14:poke646,14:poke53281,6
6020 a=a+1
6025 ifa=1thenload"parser code",8,1
7000 rem basic parse call
7010 pa=50018:rem set pa="wdptra"
7020 mo=50065:rem set mo="more"
7030 sm=50066:rem set sm="samore"
7040 bf=50076:rem set bf="inbuff"
7050 ls=50075:rem set ls="lsbuff"
7060 ou=50040:rem set ou="verb"
7070 def fn p(x)=peek (ou+x)
7080 a$="":input a$
7090 if len (a$)=0 then goto 7130
7100 for i=1 to len (a$)
7110 : poke bf+i-1,asc (mid$(a$,i,1))
7120 next i
7130 poke ls,len (a$)
7140 poke pa,0:poke mo,0:poke sm,0
7150 sys 49152
7160 if fnp(2)>=5and fnp(22)=0and fnp(17)<>0then poke ou+22,fnp(2):poke ou+2,0
7170 sys 49161
7180 rem print output
7190 print:print "action :";fnp(31);"verb";fnp(0);fnp(1);"vers";fnp(2);fnp(3)
7200 for i=0 to 2
7210 print "object";chr$(49+i);" :";fnp(32+i);"n";fnp(16+i);fnp(19+i);
7220 print "a";fnp(10+i);fnp(13+i);"o";fnp(4+i);fnp(7+i)
7230 next i
7240 print "preposit:";fnp(22);fnp(23)
7250 print "say verb:";fnp(27);fnp(28)
7260 print "say prep:";fnp(29);fnp(30)
7270 print "say more:";fnp(26)
7280 print "more :";fnp(25)
7290 print "error :";fnp(24)
7300 if fnp(24)=0 then goto 7340
7310 print "i got stuck at ";:sys 49155
7320 print
7330 rem are all objects recognized
7340 for i=0 to 2
7350 if fnp(32+i)<>255 then goto 7410
7360 print "i don't know what a ";
7370 poke pa,3:poke pa+1,fnp(13+i)
7380 sys 49158:print " ";
7390 poke pa,2:poke pa+1,fnp(19+i)
7400 sys 49158:print " is."
7410 next i
7420 rem is the action recognized
7430 if fnp (31)<>255 then goto 7500
7440 print "[201] don't know how to ";
7450 poke pa,0:poke pa+1,fnp(1)
7460 sys 49158:print " ";
7470 poke pa,1:poke pa+1,fnp(3)
7480 sys 49158:print "."
7490 :
7500 rem all output done
7510 print
7520 if peek (mo)=0 then goto 7080
7530 print "press space for next list"
7540 get a$:if a$<>" "then 7540
7550 goto 7150